In recent years, data centers have transformed computing services by, among other things, consolidating large scale computer functionality that was formerly realized within the confines of an enterprise and enabling cloud computing services. However, as the use of data centers increases, the costs of running those data centers also increases. At the same time, consumers' demand for ever increasing bandwidth and processing power continues to grow. As a result, data center operators are particularly mindful of the cost of providing data center services, and continue to seek ways to control those costs and maintain customer satisfaction.
Research has demonstrated that of the data communications traffic that traverses a data center, at least two main categories or types of traffic flows can be defined. A first category or type of traffic flow is traffic associated with services such as search requests, social networking, and retail applications, which tend to generate a large number of “small” requests and responses across the data center. This first type of traffic is commonly referred to in the art as “mouse” traffic or “mice flows” and is characterized by applications that demand low latency for each of the short request/response flows. A second category or type of traffic flow is traffic associated with services such as backup, replication, media streaming, data mining, etc., which tend to generate “large” flows across the data center and often provides for continuous updating of internal data structures within the data center This second type of traffic is commonly referred to in the art as “elephant” traffic or “elephant flows” and is characterized by applications that can handle higher latency but generally rely on higher throughput. Significantly, it is not uncommon for elephant flows to “hog” the bandwidth of a given data center, and more particularly the buffer resources in selected switching elements in the data center. More specifically, switching elements within a data center include memory that operates to buffer incoming traffic in connection with determining where traffic should be sent, e.g., determining out of which port of the switching element the incoming data should be sent. However, when a buffer is full as a result of more data having been received than can be properly transmitted or removed from the buffer, new incoming traffic at such a switching element is typically dropped or discarded, resulting in longer overall processing times which, for end point processes, especially end point processes that rely on mice flows, can be particularly detrimental to user experience and thus overall customer satisfaction.